In a network, commands may be received from multiple sources. In particular, a database, which is a central repository of a particular set of data, may be accessed for many different purposes by many different parties. The transactions involving a database will be a combination of requests to read data from the database and requests to write data to the database, with the number of read and write requests varying dependent on the operations being performed.
If numerous requests are made regarding a set of data contained in a database, the operational load on the database server may become very high. In a conventional system, transactions for a particular database are generally all handled in the same manner, thereby creating potential overload situations in time periods when many requests are made. Within a network, the loads put on certain components may be balanced to prevent overloads for any component, provide high availability of resources, and balance the use of resources. Load balancing has the added advantage of allowing switching of loads more easily if some part of the network fails. However, the nature of a database as a central repository of data makes conventional ideas of load balancing inapplicable. Further, within a conventional system, a failure in any part of a database will result in complete failure of the system and the loss of any database access.
FIG. 1 illustrates an example of conventional access to a database. In this example, a client system 105 is connected to the Internet 110. The client system 105 accesses a site that is comprised of a front end system 115 and a back end system 120. The front end system 115 includes a load balancer 125 that balances the operational load on multiple web servers, shown here as a first web server 130, a second web server 135, a third web server 140, and a fourth web server 145. A request from the client system 105 may be handled by any of the web servers depending on the load that each web server is servicing. In this example, the back end system 120 includes a database 150, which is a central repository for a particular set of data. If the request from the client system 105 includes access to the database 150, the web server that is handling the request will route the database transaction to the database 150. However, any other transaction that involves the set of data stored on database 150 will also be routed to the database. Under the conventional database access, the load on the web servers may be balanced, but database transactions for a particular set of data are all routed to the database server containing the set of data.